# -*- coding: UTF-8 -*-
# 加验证准备版
import docx
from docx import Document        #导入读取word模块
import os
import os.path
from pythonwin import win32ui    #导入打开文件选择框模块
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.shared import Cm
import re
import win32com
from win32com.client import Dispatch
from win32com import client as wc

#class Word():
input('选择产品验证方案-回车继续')
word = wc.gencache.EnsureDispatch('Word.Application')
dlg = win32ui.CreateFileDialog(1)         #1表示打开文件对话框
dlg.SetOFNInitialDir('C:/Users')          #设置打开文件对话框中的初始显示目录
dlg.DoModal()
programe = dlg.GetPathName()               #获取选择的文件名称
Path_l = os.path.join(os.path.dirname(programe))
print("文件所在目录："+ Path_l)
print("文件地址："+ programe)
Path = os.path.join(os.getcwd(),programe)    #获取选择的文件路径
record_path = Path_l + '\记录文档'+'.docx'

num_start = int(input("请输入你想从第几个表格开始拉取数据："))
num_start2 = num_start - 1
document = Document(programe) #读入文件
programe_tables = document.tables #获取文件中的表格集
programe_table_num=len(programe_tables)#获取文档的表格个数
print("此文档表格个数:"+str(programe_table_num))

rows_1 = 9 # 方案步骤上方固定行数
rows_2 = 3 # 方案步骤下方固定行数、记录步骤上方固定行数
rows_3 = 4 # 记录步骤下方固定行数
rows_4 = 9+3+4 # 总和

num3 = input("请输入您想要跳过的表格,回车\n（暂未开发，请输入大写的NO）:")
print(num3)
if num3 == 'NO':
    for k in range(num_start2,programe_table_num):  # programe_table_num
        '''记录表格行添加'''
        table = programe_tables[k] # 获取第二个表格对象
        table_rows = len(table.rows)
        table_columns = len(table.columns)
        table_rows_add = table_rows-rows_1
        print("表格"+str(k+1)+"的行数:"+ str(len(table.rows))  + "     列数：" + str(len(table.columns)))# 打印表格k的行列数
        try:
            document.tables[k].add_row()    #记录及判决结果
            document.tables[k].add_row()    #样品追溯
            document.tables[k].add_row()    #序号
            for i in range(table_rows_add): #加步骤
                document.tables[k].add_row() # 表格最下方增加一行
            document.tables[k].add_row()    #附录
            document.tables[k].add_row()    #备注
            document.tables[k].add_row()    #记录人
            document.tables[k].add_row()    #校对人
        except Exception:
            print("添加记录行失败")